perm filename MAT3D.FAI[VIS,HPM]1 blob
sn#281318 filedate 1977-05-08 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 ENTRY M33X33,M13X33,T33
C00004 ENDMK
C⊗;
ENTRY M33X33,M13X33,T33
A←0 ↔ B←1 ↔ C←2 ↔ D←3 ↔ E←4 ↔ F←5 ↔ G←6 ↔ H←7 ↔ I←10
MA←13 ↔ MB←14 ↔ MR←15 ↔ T←11 ↔ P←17
RETAD: 0
M33X33: POP P,RETAD ;multiply a 3x3 matrix MA with another
POP P,MR ;3x3 MB, putting result in MR
POP P,MB ; M33X33(MA,MB,MR)
POP P,MA
FOR I←0,2,1
{ FOR J←0,2,1
{ MOVE 3*I+J,3*I(MA)
FMPR 3*I+J,J(MB)
MOVE T,3*I+1(MA)
FMPR T,J+3(MB)
FADR 3*I+J,T
MOVE T,3*I+2(MA)
FMPR T,J+6(MB)
FADR 3*I+J,T
}
}
MOVEI T,10(MR)
BLT MR,(T)
JRST @RETAD
M13X33: POP P,RETAD ;multiply a 1x3 matrix MA with a
POP P,MR ;3x3 MB, putting result in 1X3 result in MR
POP P,MB ; M13X33(MA,MB,MR)
POP P,MA
FOR I←0,2,1
{ MOVE I,0(MA)
FMPR I,I(MB)
MOVE T,1(MA)
FMPR T,I+3(MB)
FADR I,T
MOVE T,2(MA)
FMPR T,I+6(MB)
FADR I,T
}
MOVEI T,2(MR)
BLT MR,(T)
JRST @RETAD
T33: POP P,RETAD ;TRANSPOSE A 3X3 MATRIX
POP P,MR
POP P,MA ; T33(MA,MR)
HRLZ MA,MA
BLT MA,10
EXCH 1,3
EXCH 2,6
EXCH 7,5
MOVEI T,10(MR)
BLT MR,(T)
JRST @RETAD
END